package org.sixtynine.stock.service;

import java.util.Date;
import java.util.List;

import org.sixtynine.stock.ReturnData;
import org.sixtynine.stock.criteria.StockSearchCriteria;
import org.sixtynine.stock.entity.User;
import org.sixtynine.stock.result.DividendResult;
import org.sixtynine.stock.result.ShareResult;
import org.sixtynine.stock.result.StockResult;

/**
 * @author Thilanka
 * 
 */
public interface StockManagerService {

	public User login(String userName, String passwords);

	/**
	 * @param criteria
	 * @return share results
	 */
	public ReturnData<List<ShareResult>> search(StockSearchCriteria criteria);

	/**
	 * @param criteria
	 * @return stock results
	 */
	public ReturnData<List<StockResult>> searchSector(
			StockSearchCriteria criteria);

	/**
	 * @param companyId
	 * @param fromDate
	 * @param toDate
	 * @return list of dividents for given time
	 */
	public ReturnData<List<DividendResult>> searchDividends(int companyId,
			Date fromDate, Date toDate);

	ReturnData<List<ShareResult>> searchSectorCompanies(
			StockSearchCriteria criteria);
}
